LINQ (Language Integrated Query) হল একটি শক্তিশালী টুল যা ডেটা ফিল্টারিং এবং রিট্রিভ করার জন্য ব্যবহৃত হয়। এটি ডেটাবেস, কালেকশন বা XML থেকে ডেটা রিট্রিভ এবং ম্যানিপুলেট করার একটি সাধারণ এবং একত্রিত পদ্ধতি প্রদান করে। LINQ Entity Framework-এর সাথে ব্যবহার করে ASP.Net MVC-তে ডেটা ফিল্টার এবং রিট্রিভ করা খুবই সহজ।
LINQ এর মাধ্যমে Entity Framework ডেটাবেস থেকে ডেটা রিট্রিভ করার জন্য IQueryable
অথবা IEnumerable
ব্যবহার করা হয়।
একটি Students
টেবিল থেকে সমস্ত ডেটা রিট্রিভ করতে LINQ ব্যবহার:
var students = _context.Students.ToList();
এটি Students
টেবিলের সমস্ত রেকর্ড students
ভেরিয়েবলে লোড করবে।
ধরা যাক, আমরা এমন সব শিক্ষার্থীর তালিকা রিট্রিভ করতে চাই যাদের বয়স ১৮-এর বেশি:
var adultStudents = _context.Students.Where(s => s.Age > 18).ToList();
এখানে Where
মেথড ব্যবহার করে বয়সের উপর ভিত্তি করে ডেটা ফিল্টার করা হয়েছে।
শুধুমাত্র শিক্ষার্থীদের নাম এবং ক্লাস রিট্রিভ করতে:
var studentNamesAndClasses = _context.Students
.Select(s => new { s.Name, s.Class })
.ToList();
এটি Students
টেবিল থেকে শুধুমাত্র Name
এবং Class
ফিল্ড রিট্রিভ করবে।
নাম অনুসারে শিক্ষার্থীদের তালিকা ক্রমবর্ধমানভাবে সাজাতে:
var sortedStudents = _context.Students.OrderBy(s => s.Name).ToList();
বয়স অনুসারে শিক্ষার্থীদের তালিকা ক্রমহ্রাসমানভাবে সাজাতে:
var sortedStudentsByAge = _context.Students.OrderByDescending(s => s.Age).ToList();
গ্রুপিং ব্যবহার করে ডেটা সংগঠিত করা যায়। উদাহরণস্বরূপ, শিক্ষার্থীদের ক্লাস অনুযায়ী গ্রুপ করতে:
var groupedStudents = _context.Students
.GroupBy(s => s.Class)
.Select(group => new
{
ClassName = group.Key,
Students = group.ToList()
})
.ToList();
এটি Class
অনুযায়ী শিক্ষার্থীদের গ্রুপ করবে এবং প্রতিটি গ্রুপের শিক্ষার্থীদের তালিকা প্রদান করবে।
var totalStudents = _context.Students.Count();
var totalClassTenStudents = _context.Students.Count(s => s.Class == "10");
var averageAge = _context.Students.Average(s => s.Age);
var maxAge = _context.Students.Max(s => s.Age);
var minAge = _context.Students.Min(s => s.Age);
ধরা যাক, প্রতি পেজে ১০টি শিক্ষার্থীর তালিকা দেখাতে হবে। Skip
এবং Take
মেথড ব্যবহার করে এটি করা সম্ভব:
int pageNumber = 2;
int pageSize = 10;
var paginatedStudents = _context.Students
.Skip((pageNumber - 1) * pageSize)
.Take(pageSize)
.ToList();
এটি ২য় পেজের জন্য ১০টি শিক্ষার্থীর তালিকা রিট্রিভ করবে।
LINQ ব্যবহার করে ডেটাবেস থেকে ডেটা ফিল্টার এবং রিট্রিভ করা ASP.Net MVC অ্যাপ্লিকেশনে একটি অত্যন্ত গুরুত্বপূর্ণ এবং কার্যকর পদ্ধতি। LINQ-এর সরল এবং শক্তিশালী কোয়েরি সিস্টেম ডেভেলপারদের কাজকে দ্রুত এবং দক্ষ করে তোলে। এটি ডেটাবেস অপারেশন সহজ করার পাশাপাশি কোডের পাঠযোগ্যতা বৃদ্ধি করে।
common.read_more